package com.qezhhnjy.leetcode.question.daily;

/**
 * @author qezhhnjy
 * @date 2020/12/21-22:32
 * <p>
 * 数组的每个索引作为一个阶梯，第 i个阶梯对应着一个非负数的体力花费值 cost[i](索引从0开始)。
 * <p>
 * 每当你爬上一个阶梯你都要花费对应的体力花费值，然后你可以选择继续爬一个阶梯或者爬两个阶梯。
 * <p>
 * 您需要找到达到楼层顶部的最低花费。在开始时，你可以选择从索引为 0 或 1 的元素作为初始阶梯。
 * <p>
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/min-cost-climbing-stairs
 */
public class MinCostClimbeStair {

    public int minCostClimbeStair(int[] cost) {
        for (int i = 0; i < cost.length; i++) {
            if (i > 1) {
                cost[i] += Math.min(cost[i - 1], cost[i - 2]);
            }
        }
        return Math.min(cost[cost.length - 1], cost[cost.length - 2]);
    }
}
